# Deeply integrating Discourse into website

**URL:** https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214
**Category:** Development
**Created:** [13 במאי,‏ 2016,‏ 8:12pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214 "2016-05-13T20:12:31Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Christian\_Windeck](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_windeck/32/121841_2.png) [@Christian\_Windeck](https://meta.discourse.org/u/Christian_Windeck)
#### Post date: [13 במאי,‏ 2016,‏ 8:12pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/1 "2016-05-13T20:12:31Z")

</div>

Hi,

I’m new to discourse.  
How well is it possible to integrate discourse into a complex website or integrate a website into discourse.

I need high integration, graphically and technically. These should be no optical difference between the website and the discourse. I need customization on the graphical layout of discourse and also low-level DB access. I’m integrating various other custom dynamic code with the forum software including a webshop.

I do not want to be limited to discourse plugins.  
Are there any resources on discourses internal DB structure?  
How easy is customization and integration with static and server-generated pages.

- Christian

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [13 במאי,‏ 2016,‏ 8:35pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/2 "2016-05-13T20:35:24Z")

</div>

It really depends on what you’re trying to do. If you’re trying to pull pieces of your discourse instance into an existing website, then take a look at this:

> [@Discourse REST API Documentation](https://meta.discourse.org/t/discourse-api-documentation/22706):
>
> Discourse API Please view the Discourse API Documentation site for detailed info: [https://docs.discourse.org](https://docs.discourse.org)information_source Authentication API requests must use HTTP header based authentication. Pass your Api-Key and Api-Username as HTTP headers. Authentication via query parameters or request body is not supported (this was removed in April 2020). Please see the example cURL request below. The only API endpoints that continue to support credentials in query parameters are requests to…

If you’re trying to go the other way, I would challenge you to ask if this is really necessary. By creating links on discourse that go to your site and links on the site that go back to discourse, you’re effectively doing the same thing.

This is exactly what I do and I have people ask how I managed to incorporate something so dynamic and database driven into my static site. 😄 I don’t. One is on a subdomain with heavy linking back and forth.

---

<div class="post-metadata">

### Author: ![Christian\_Windeck](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_windeck/32/121841_2.png) [@Christian\_Windeck](https://meta.discourse.org/u/Christian_Windeck)
#### Post date: [13 במאי,‏ 2016,‏ 8:42pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/3 "2016-05-13T20:42:57Z")

</div>

Well besides a graphical integration I also need the integrate the websites technically.  
For example I need to access stats of users and run my custom code to award ranks/permissions for users. Likes should cost credits and I need to change the appearance of the profile page dynamically.

Also I need to integrate single posts into my pages and have users reply from just there.

I discourse SO hackable?

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [13 במאי,‏ 2016,‏ 9:03pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/4 "2016-05-13T21:03:37Z")

</div>

Just my opinion, but it sounds like you need to build a plugin that connects to your site and also look at the embedding process.

> [@Embed Discourse comments on another website via Javascript](https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963):
>
> Discourse has the ability to embed the comments from a topic in a remote site using a Javascript API that creates an IFRAME. For an example of this in action, check out [Coding Horror’s blog](http://blog.codinghorror.com/welcome-to-the-internet-of-compromised-things/#discourse-comments). The blog is run via [Ghost](https://ghost.org/) but the comments are embedded from his [Discourse forum](http://discourse.codinghorror.com/t/welcome-to-the-internet-of-compromised-things/3550). One important thing to note with this setup is that users have to navigate to your forum to post replies. This is intentional, as we feel that the posting interface on a Discourse forum is currently much richer than what we …

Your plugin would need to restrict the like button based on the result it gets from your site and run an ajax call back to your site to keep it updated. I would probably run a couple daily sidekiq jobs to make sure everything is in line.

But to answer your question, yes. I would say it’s possible. But is it worth it?

---

<div class="post-metadata">

### Author: ![BillyBantam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/billybantam/32/120952_2.png) [@BillyBantam](https://meta.discourse.org/u/BillyBantam)
#### Post date: [6 ביוני,‏ 2017,‏ 11:59am UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/5 "2017-06-06T11:59:55Z")

</div>

Can I get a link to your site. From the sounds of it, you have achieved what I envision in my head. Just want to see if it’s possible.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [6 ביוני,‏ 2017,‏ 1:54pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/6 "2017-06-06T13:54:01Z")

</div>

The blog is here: [joebuhlig.com](https://joebuhlig.com)

The Discourse instance is here: [productivityguild.com](https://productivityguild.com)

---

<div class="post-metadata">

### Author: ![Iangitpers](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iangitpers/32/249881_2.png) [@Iangitpers](https://meta.discourse.org/u/Iangitpers)
#### Post date: [17 בפברואר,‏ 2022,‏ 2:32pm UTC](https://meta.discourse.org/t/deeply-integrating-discourse-into-website/44214/7 "2022-02-17T14:32:55Z")

</div>

@joebuhlig that looks amazing! It’s exactly what I’m trying to put together. Thank you for sharing.

How is the content of the post duplicated? Do you do pull the discourse post content via the api as well?
