Update features section on landing page

This commit is contained in:
Peter Stockings
2025-11-21 11:06:47 +11:00
parent d390820ba3
commit 64c3a4bbf7

View File

@@ -207,59 +207,118 @@
</section>
{% endif %}
<section class="py-8">
<div class="container mx-auto flex flex-wrap pt-4 pb-12">
<h2 class="w-full my-2 text-5xl font-black leading-tight text-center text-gray-800">Features</h2>
<div class="w-full mb-4">
<div class="h-1 mx-auto gradient w-64 opacity-25 my-0 py-0 rounded-t"></div>
<section class="py-16">
<div class="container mx-auto px-4">
<div class="text-center mb-16">
<h2 class="text-4xl font-black text-gray-900 mb-4">Everything You Need</h2>
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
A complete serverless platform designed for developers who want to ship code, not manage
infrastructure.
</p>
</div>
<div class="w-full md:w-1/3 p-6 flex flex-col flex-grow flex-shrink">
<div class="flex-1 bg-white rounded-t rounded-b-none overflow-hidden shadow">
<a href="#" class="flex flex-wrap no-underline hover:no-underline">
<div class="w-full font-bold text-xl text-gray-800 px-6 mt-6">HTTP Functions</div>
<p class="text-gray-600 text-base px-6 mb-5">Seamlessly create and deploy HTTP functions
that can
serve as robust API endpoints. Access request methods, headers, form data, and JSON,
while
easily returning responses in various formats
</p>
</a>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Feature 1: HTTP Functions -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">HTTP Endpoints</h3>
<p class="text-gray-600 leading-relaxed">
Instantly deploy serverless HTTP functions. Handle GET, POST, and more with full access to
headers, query params, and body data.
</p>
</div>
</div>
<div class="w-full md:w-1/3 p-6 flex flex-col flex-grow flex-shrink">
<div class="flex-1 bg-white rounded-t rounded-b-none overflow-hidden shadow">
<a href="#" class="flex flex-wrap no-underline hover:no-underline">
<div class="w-full font-bold text-xl text-gray-800 px-6 mt-6">Timer Functions</div>
<p class="text-gray-600 text-base px-6 mb-5">Automate tasks with precision using timer
functions.
Schedule recurring jobs or one-time events without the need for external cron services.
Manage
timing with ease, whether for regular data processing, periodic updates, or timed
notifications
</p>
</a>
<!-- Feature 2: Timer Functions -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-green-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-green-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">Scheduled Jobs</h3>
<p class="text-gray-600 leading-relaxed">
Run code on a schedule without cron servers. Set up recurring tasks or one-time jobs with
precision timing.
</p>
</div>
</div>
<div class="w-full md:w-1/3 p-6 flex flex-col flex-grow flex-shrink">
<div class="flex-1 bg-white rounded-t rounded-b-none overflow-hidden shadow">
<a href="#" class="flex flex-wrap no-underline hover:no-underline">
<div class="w-full font-bold text-xl text-gray-800 px-6 mt-6">Persistent JSON Storage</div>
<p class=" text-gray-600 text-base px-6 mb-5">Leverage built-in mutable JSON storage,
ensuring your
data persists seamlessly within the environment. Store and modify your data in
real-time, with
the flexibility to access and update your stored information effortlessly</p>
</a>
<!-- Feature 3: Multi-Runtime -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-purple-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">Polyglot Runtimes</h3>
<p class="text-gray-600 leading-relaxed">
Write in your preferred language. First-class support for Node.js, Deno, and Python with
isolated execution environments.
</p>
</div>
<!-- Feature 4: Persistent Storage -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-yellow-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-yellow-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">Built-in State</h3>
<p class="text-gray-600 leading-relaxed">
Simple, persistent JSON storage for every function. Keep state between invocations without
setting up a database.
</p>
</div>
<!-- Feature 5: AI Assistant -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-pink-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-pink-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M13 10V3L4 14h7v7l9-11h-7z" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">AI Powered</h3>
<p class="text-gray-600 leading-relaxed">
Built-in AI assistant to generate, explain, debug, and optimize your code. Go from idea to
deployed function in seconds.
</p>
</div>
<!-- Feature 6: Community -->
<div
class="bg-white rounded-xl p-8 shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="w-12 h-12 bg-indigo-100 rounded-lg flex items-center justify-center mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-indigo-600" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
</svg>
</div>
<h3 class="text-xl font-bold text-gray-900 mb-3">Community Library</h3>
<p class="text-gray-600 leading-relaxed">
Discover and fork functions from the community. Share your own creations and collaborate
with other developers.
</p>
</div>
</div>
</div>
</section>
@@ -269,4 +328,6 @@
document.getElementById("nav-content").classList.toggle("hidden");
}
</script>
</body>
</body>
</html>