# Fully On-Chain SSR dApp Demo with IC and Fleek

**URL:** <https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590>\
**Category:** Community Tutorials & Video\
**Created:** [December 8, 2024, 1:27am UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590 "2024-12-08T01:27:11Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wiyota](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/wiyota/32/27664_2.png) [@wiyota](https://forum.dfinity.org/u/wiyota)\
**Post date:** [December 8, 2024, 1:27am UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590/1 "2024-12-08T01:27:11Z")

</div>

Now you can easily create 100% on-chain dApps that make full use of SSR.  
By using IC for the backend and Fleek for the frontend, Web3 can be achieved without compromising UX.  
The current TTFB is not great, but the mainnet launch of Fleek Network in Q1 2025 should enable an [unparalleled experience](https://blog.fleek.network/post/fleek-network-testnet-phase-3-results/).

> **[GitHub - wiyota/ic-fleek-demo](https://github.com/wiyota/ic-fleek-demo)**
>
> Contribute to wiyota/ic-fleek-demo development by creating an account on GitHub.

[Running example](https://sparse-portugal-massive.functions.on-fleek.app/)

---

<div class="post-metadata">

**Author:** ![hehe](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/hehe/32/13167_2.png) [@hehe](https://forum.dfinity.org/u/hehe)\
**Post date:** [December 8, 2024, 5:26am UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590/2 "2024-12-08T05:26:34Z")

</div>

Never understood what aspect of the program that fleek is working on is for?I hope someone can explain this to me.

---

<div class="post-metadata">

**Author:** ![wiyota](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/wiyota/32/27664_2.png) [@wiyota](https://forum.dfinity.org/u/wiyota)\
**Post date:** [December 9, 2024, 10:44am UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590/3 "2024-12-09T10:44:47Z")

</div>

The basics are mentioned in this blog post.

> **[Introducing Fleek Network & Fleek.xyz ⚡️](https://fleek.xyz/blog/announcements/introducing-fleek-network-and-fleek-xyz/)**
>
> We just closed a $25M Series A to build Fleek Network, a decentralized CDN, and Fleek.xyz, the web3 dev platform of the future.

I won’t discuss Fleek in detail here, but it’s an alternative to IC that does not assume SSR and is one of the means by which Web3 can deliver an optimal web frontend solution of ‘pre-cached HTML delivered from the edge, close to the user’.

---

<div class="post-metadata">

**Author:** ![yongsxyz](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/yongsxyz/32/22753_2.png) [@yongsxyz](https://forum.dfinity.org/u/yongsxyz)\
**Post date:** [December 19, 2024, 5:42pm UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590/4 "2024-12-19T17:42:15Z")

</div>

Hi, thanks for sharing! Currently, I’m working on some Social Media Preview pages for SEO metatags, but an issue because it doesn’t support SSR. Is there any update on SSR support for the IC frontend?. Does this mean that the solution needs to be outside of IC for SSR support?

---

<div class="post-metadata">

**Author:** ![wiyota](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/wiyota/32/27664_2.png) [@wiyota](https://forum.dfinity.org/u/wiyota)\
**Post date:** [December 20, 2024, 2:51am UTC](https://forum.dfinity.org/t/fully-on-chain-ssr-dapp-demo-with-ic-and-fleek/38590/5 "2024-12-20T02:51:23Z")

</div>

While it’s technically possible to insert metatags directly in the http response, there are a couple of known problems with running SSR on IC.

> [@Is ssr supported in apps deployed on ic?](https://forum.dfinity.org/t/is-ssr-supported-in-apps-deployed-on-ic/36042/8):
>
> You are going to run into a couple of issues here. Certifying your responses - Gateways try to make sure your responses are certified by the canister. I know this has changed a bit, but I’m pretty sure you’ll still get non-certification errors if you try to serve a web resource not from the canister\_id.raw.ic0.app endpoint. Origyn did a custom proxy at one point to get around this, but when you do that you open up users to a man-in-the-middle attack. Because canisters have to sign a certifi…

Even if these challenges were resolved, IC’s small number of nodes and their geographical randomness make it less than ideal as a CDN for frontend applications looking to leverage SSR/SSG/ISR to enhance UX.

Controlling external services with SNS would require a distinctive solution, but it would be the more practical approach compared to build SSR on top of the current IC.
