77 FaCopy ,
88 FaHandPeace ,
99 FaImage ,
10+ FaLock ,
1011 FaNetworkWired ,
1112 FaPencilAlt ,
1213 FaPencilRuler ,
@@ -51,8 +52,8 @@ const FEATURES = [
5152 } ,
5253 {
5354 Icon : ( props : any ) => < FaCode { ...props } /> ,
54- title : "Developer‑First " ,
55- description : "Type‑safe SDK, REST API, framework-friendly" ,
55+ title : "Developer first " ,
56+ description : "Type‑safe SDK, REST API, framework-friendly. " ,
5657 } ,
5758 {
5859 Icon : ( props : any ) => < FaImage { ...props } /> ,
@@ -62,7 +63,7 @@ const FEATURES = [
6263 } ,
6364 {
6465 Icon : ( props : any ) => < FaPencilAlt { ...props } /> ,
65- title : "Writer‑Friendly " ,
66+ title : "Writer friendly " ,
6667 description :
6768 "Inspired by tools like Notion, we made an editor that is both powerful and simple to use." ,
6869 } ,
@@ -73,10 +74,10 @@ const FEATURES = [
7374 "You can manage tags, categories, authors, multiple blogs, images and videos without configuring anything!" ,
7475 } ,
7576 {
76- Icon : ( props : any ) => < FaSmile { ...props } /> ,
77- title : "It's not Wordpress " ,
77+ Icon : ( props : any ) => < FaLock { ...props } /> ,
78+ title : "Privacy friendly " ,
7879 description :
79- "Forget about wordpress headaches. Just focus on writing great content." ,
80+ "You decide the limit. You have full control over your data. We just give you your content." ,
8081 } ,
8182] ;
8283
@@ -134,9 +135,10 @@ const Home = () => {
134135 < main className = "mt-12 px-6 pb-24" >
135136 < div className = "mx-auto mt-8 max-w-5xl px-6 text-center" >
136137 < h1
137- className = { `mt-4 text-balance text-4xl font-semibold tracking-tight text-slate-800 md:text-6xl ` }
138+ className = { `mt-4 text-balance text-4xl font-semibold tracking-tight text-slate-800` }
138139 >
139- Launch your blog in minutes
140+ < span className = "text-slate-400" > Think, write, publish.</ span >
141+ < br /> A simple blogging CMS.
140142 </ h1 >
141143
142144 < div className = "mt-4 text-slate-500" >
@@ -147,7 +149,7 @@ const Home = () => {
147149 < Link className = "mt-6 inline-flex" href = "/sign-up" >
148150 < Button
149151 size = "default"
150- className = "h-12 rounded-xl text-lg font-medium"
152+ className = "rounded-full bg-gradient-to-b from-slate-800 to-slate-900 font-medium"
151153 >
152154 Start blogging for free < ArrowRight className = "ml-0.5" />
153155 </ Button >
@@ -170,15 +172,30 @@ const Home = () => {
170172 < HeroImages />
171173 </ div >
172174
173- < div className = "mx-auto mt-12 flex max-w-6xl flex-wrap justify-center gap-6" >
175+ < div className = "mx-auto mt-24 max-w-2xl justify-center gap-6 p-6 text-center" >
176+ < h2 className = "text-2xl font-medium" >
177+ < span className = "rounded-lg bg-gray-100 px-1 font-mono font-semibold tracking-tight text-orange-500" >
178+ Developers
179+ </ span > { " " }
180+ love it
181+ </ h2 >
182+ < p className = "mb-6 text-slate-500" >
183+ What people say about zenblog.
184+ </ p >
185+
174186 { tweets . map ( ( tweet ) => (
175187 < TweetItem key = { tweet . username } { ...tweet } />
176188 ) ) }
177189 </ div >
178190
179191 < div className = "mx-auto mt-24 max-w-4xl pt-24" >
180- < h2 className = "text-center text-2xl font-medium" > Why Zenblog?</ h2 >
181- < div className = "mx-auto mt-8 divide-y rounded-xl border bg-slate-100/40" >
192+ < h2 className = "text-center text-2xl font-medium" >
193+ Why should you use Zenblog?
194+ </ h2 >
195+ < p className = "mx-auto mt-2 max-w-xl text-center text-slate-500" >
196+ Every feature developers love.
197+ </ p >
198+ < div className = "mx-auto mt-8 grid grid-cols-1 rounded-xl border bg-slate-50 md:grid-cols-2" >
182199 { FEATURES . map ( ( feature ) => (
183200 < div
184201 key = { feature . title }
@@ -187,8 +204,8 @@ const Home = () => {
187204 < div className = "" >
188205 < feature . Icon className = "size-6 text-slate-400/70 transition-all group-hover:scale-105 group-hover:text-orange-500" />
189206 </ div >
190- < h3 className = "text-xl font-medium " > { feature . title } </ h3 >
191- < p className = "text-xl text-slate-500 " >
207+ < h3 className = "mt-1 font-semibold " > { feature . title } </ h3 >
208+ < p className = "max-w-sm text-balance text-slate-600 " >
192209 { feature . description }
193210 </ p >
194211 </ div >
@@ -321,30 +338,29 @@ const Home = () => {
321338const tweets = [
322339 {
323340 content :
324- "By the way, the CMS is @zenbloghq. A brilliant CMS that simply works. Integrating it with the website didn't take 5 minutes. " ,
325- name : "Narix Hine " ,
326- username : "leximory " ,
327- image : "/static/tweets/leximory .jpg" ,
341+ "I started using @zenbloghq yesterday. I literally got it running on my Astro site in 10 minutes. Really great product " ,
342+ name : "Alvaro " ,
343+ username : "metasurfero " ,
344+ image : "/static/tweets/metasurfero .jpg" ,
328345 } ,
329346 {
330- content :
331- "Just tried @zenbloghq last night and i started a blog and connected to my website with some help from cursor.The site is coming together, time for a real domain I think https://jesselawrence.replit.app/blog" ,
332- name : "Jesse" ,
333- username : "lawrencejessej" ,
334- image : "/static/tweets/lawrencejessej.jpg" ,
347+ content : "I'm using @zenbloghq and you probably should too" ,
348+ name : "Duncan Lutz" ,
349+ username : "duncanthedev" ,
350+ image : "/static/tweets/duncanthedev.jpg" ,
335351 } ,
336352 {
337353 content :
338- "I started using @zenbloghq yesterday. I literally got it running on my Astro site in 10 minutes. Really great product " ,
339- name : "Alvaro " ,
340- username : "metasurfero " ,
341- image : "/static/tweets/metasurfero .jpg" ,
354+ "By the way, the CMS is @zenbloghq. A brilliant CMS that simply works. Integrating it with the website didn't take 5 minutes. " ,
355+ name : "Narix Hine " ,
356+ username : "leximory " ,
357+ image : "/static/tweets/leximory .jpg" ,
342358 } ,
343359 {
344- content : "i use zenblog to manage the blog in zenblog " ,
345- name : "jordi " ,
346- username : "jordienr " ,
347- image : "/static/tweets/jordienr .jpg" ,
360+ content : "@zenbloghq is the best " ,
361+ name : "dmytro " ,
362+ username : "pqoqubbw " ,
363+ image : "/static/tweets/pqoqubbw .jpg" ,
348364 } ,
349365 {
350366 content : "zenblog gud" ,
@@ -359,46 +375,33 @@ const TweetItem = ({
359375 name,
360376 username,
361377 image,
362- isThread = false ,
363- isLast = false ,
364378} : {
365379 content : string ;
366380 name : string ;
367381 username : string ;
368382 image : string ;
369- isThread ?: boolean ;
370- isLast ?: boolean ;
371383} ) => {
372384 return (
373385 < div
374386 className = { cn (
375- "relative flex w-80 flex-col gap-2 rounded-xl border bg-slate-100/ 50 p-4"
387+ "relative mb-4 flex gap-4 rounded-lg border bg-slate-50 p-4 text-left "
376388 ) }
377389 >
378- < div className = "flex items-center gap-2" >
379- { isThread && ! isLast ? (
380- < div className = "absolute left-[36px] top-[70px] h-full w-px bg-slate-200" > </ div >
381- ) : null }
390+ < div className = "flex-shrink-0" >
382391 < Image
383392 src = { image }
384393 alt = { name }
385- width = { 60 }
386- height = { 60 }
387- className = "z-10 rounded-full border border-slate-100 "
394+ width = { 48 }
395+ height = { 48 }
396+ className = "rounded-full"
388397 />
389- < div className = { cn ( "flex flex-col" ) } >
390- < p className = "text-lg font-medium" > { name } </ p >
391- < p className = "text-lg font-medium text-slate-500" > { username } </ p >
392- </ div >
393398 </ div >
394- < div className = "flex flex-col" >
395- < p
396- className = { cn ( "text-lg" , {
397- "ml-12" : isThread ,
398- } ) }
399- >
400- { content }
401- </ p >
399+ < div className = { cn ( "" ) } >
400+ < div className = "flex items-center gap-2" >
401+ < p className = "font-semibold" > { name } </ p >
402+ < p className = " text-slate-500" > @{ username } </ p >
403+ </ div >
404+ < p className = { cn ( "text-balance text-slate-800" ) } > { content } </ p >
402405 </ div >
403406 </ div >
404407 ) ;
0 commit comments