<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ehan Siddique</title>
    <description>The latest articles on DEV Community by Ehan Siddique (@ehan_siddique).</description>
    <link>https://dev.to/ehan_siddique</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4087026%2Fa3ca6c2d-02f7-4bec-8b75-31e0db7587b8.PNG</url>
      <title>DEV Community: Ehan Siddique</title>
      <link>https://dev.to/ehan_siddique</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ehan_siddique"/>
    <language>en</language>
    <item>
      <title>JWT Refresh Tokens: How They Make Login Systems Safer and More Practical</title>
      <dc:creator>Ehan Siddique</dc:creator>
      <pubDate>Wed, 23 Sep 2026 04:20:34 +0000</pubDate>
      <link>https://dev.to/ehan_siddique/jwt-refresh-tokens-how-they-make-login-systems-safer-and-more-practical-dn4</link>
      <guid>https://dev.to/ehan_siddique/jwt-refresh-tokens-how-they-make-login-systems-safer-and-more-practical-dn4</guid>
      <description>&lt;p&gt;When building a modern web application, authentication is one of the first things we need to think about.&lt;/p&gt;

&lt;p&gt;A simple login system sounds easy:&lt;/p&gt;

&lt;p&gt;User enters email and password → server checks them → user is logged in.&lt;/p&gt;

&lt;p&gt;But what happens after the login?&lt;/p&gt;

&lt;p&gt;How does the website remember that the user is authenticated? How long should the login remain valid? What happens if an authentication token gets stolen?&lt;/p&gt;

&lt;p&gt;This is where JWT access tokens and refresh tokens become useful.&lt;/p&gt;

&lt;p&gt;What is a JWT?&lt;/p&gt;

&lt;p&gt;JWT stands for JSON Web Token.&lt;/p&gt;

&lt;p&gt;It is a compact token that can be used to represent authenticated information between a client and a server.&lt;/p&gt;

&lt;p&gt;After a successful login, the server can generate an access token:&lt;/p&gt;

&lt;p&gt;User → Login&lt;br&gt;
      ↓&lt;br&gt;
Server verifies credentials&lt;br&gt;
      ↓&lt;br&gt;
Server generates JWT&lt;br&gt;
      ↓&lt;br&gt;
Client receives token&lt;/p&gt;

&lt;p&gt;The client can then send the access token with requests to protected APIs.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Authorization: Bearer &lt;/p&gt;

&lt;p&gt;The server verifies the token and decides whether the request is authenticated.&lt;/p&gt;

&lt;p&gt;So what's the problem with a normal JWT?&lt;/p&gt;

&lt;p&gt;The main problem is token lifetime.&lt;/p&gt;

&lt;p&gt;Imagine giving a user an access token that remains valid for 30 days.&lt;/p&gt;

&lt;p&gt;That's convenient, but it creates a security problem.&lt;/p&gt;

&lt;p&gt;If someone steals that token, they may be able to use it until it expires.&lt;/p&gt;

&lt;p&gt;On the other hand, if we make the access token expire after 5 or 10 minutes, security improves, but users would constantly have to log in again.&lt;/p&gt;

&lt;p&gt;That's not a great user experience.&lt;/p&gt;

&lt;p&gt;This is where the refresh token comes in.&lt;/p&gt;

&lt;p&gt;What is a Refresh Token?&lt;/p&gt;

&lt;p&gt;A refresh token is a longer-lived credential that can be used to obtain a new access token without asking the user to log in again.&lt;/p&gt;

&lt;p&gt;Instead of having one token do everything, we separate the responsibilities:&lt;/p&gt;

&lt;p&gt;Access Token&lt;/p&gt;

&lt;p&gt;Short-lived&lt;br&gt;
Used for API requests&lt;br&gt;
Expires quickly&lt;/p&gt;

&lt;p&gt;Refresh Token&lt;/p&gt;

&lt;p&gt;Longer-lived&lt;br&gt;
Used to obtain new access tokens&lt;br&gt;
Should be protected carefully&lt;br&gt;
Usually isn't sent with every API request&lt;/p&gt;

&lt;p&gt;The basic idea looks like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            LOGIN
              │
              ▼
      ┌─────────────────┐
      │ Server verifies │
      │   credentials   │
      └────────┬────────┘
               │
        ┌──────┴──────┐
        ▼             ▼
  Access Token   Refresh Token
   Short-lived    Long-lived
        │             │
        ▼             │
   API Requests       │
                      │
                Access token
                   expires
                      │
                      ▼
              Refresh request
                      │
                      ▼
              New access token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The user doesn't need to enter their password again.&lt;/p&gt;

&lt;p&gt;Why Not Just Use a Long-Lived JWT?&lt;/p&gt;

&lt;p&gt;This is one of the biggest reasons refresh tokens exist.&lt;/p&gt;

&lt;p&gt;Suppose your access token is valid for 30 days.&lt;/p&gt;

&lt;p&gt;If it gets stolen, the attacker may have a usable credential for a long period.&lt;/p&gt;

&lt;p&gt;Instead, you could make the access token short-lived:&lt;/p&gt;

&lt;p&gt;Access Token → 10–15 minutes&lt;br&gt;
Refresh Token → days/weeks&lt;/p&gt;

&lt;p&gt;Now, even if an access token is compromised, its useful lifetime is much shorter.&lt;/p&gt;

&lt;p&gt;The refresh token is more sensitive, so it needs stronger protection and should be handled carefully.&lt;/p&gt;

&lt;p&gt;How the Login Flow Works&lt;/p&gt;

&lt;p&gt;Let's imagine a user logs into an application.&lt;/p&gt;

&lt;p&gt;Step 1 — User submits credentials&lt;br&gt;
POST /api/login&lt;br&gt;
{&lt;br&gt;
  "email": "&lt;a href="mailto:user@example.com"&gt;user@example.com&lt;/a&gt;",&lt;br&gt;
  "password": "password"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;The server verifies the credentials.&lt;/p&gt;

&lt;p&gt;Step 2 — Server generates tokens&lt;/p&gt;

&lt;p&gt;If authentication succeeds:&lt;/p&gt;

&lt;p&gt;Access Token&lt;br&gt;
+&lt;br&gt;
Refresh Token&lt;/p&gt;

&lt;p&gt;The access token is used for normal API requests.&lt;/p&gt;

&lt;p&gt;The refresh token is kept in a safer storage mechanism, commonly an HttpOnly, Secure cookie for browser applications.&lt;/p&gt;

&lt;p&gt;Step 3 — User accesses protected resources&lt;/p&gt;

&lt;p&gt;The client sends the access token:&lt;/p&gt;

&lt;p&gt;GET /api/profile&lt;/p&gt;

&lt;p&gt;Authorization: Bearer &lt;/p&gt;

&lt;p&gt;The server verifies it.&lt;/p&gt;

&lt;p&gt;If valid:&lt;/p&gt;

&lt;p&gt;200 OK&lt;br&gt;
Step 4 — Access token expires&lt;/p&gt;

&lt;p&gt;Eventually:&lt;/p&gt;

&lt;p&gt;Access Token → EXPIRED&lt;/p&gt;

&lt;p&gt;Instead of showing the login page immediately, the application can use the refresh token.&lt;/p&gt;

&lt;p&gt;Step 5 — Refresh the session&lt;/p&gt;

&lt;p&gt;The client sends a request such as:&lt;/p&gt;

&lt;p&gt;POST /api/refresh&lt;/p&gt;

&lt;p&gt;The server validates the refresh token.&lt;/p&gt;

&lt;p&gt;If everything is valid, it issues a new access token.&lt;/p&gt;

&lt;p&gt;Old Access Token → Expired&lt;/p&gt;

&lt;p&gt;Refresh Token&lt;br&gt;
       ↓&lt;br&gt;
Server validates&lt;br&gt;
       ↓&lt;br&gt;
New Access Token&lt;/p&gt;

&lt;p&gt;The user can continue using the website without logging in again.&lt;/p&gt;

&lt;p&gt;Why This Matters for Website Owners&lt;/p&gt;

&lt;p&gt;For website owners and developers, refresh tokens aren't just about making authentication more complicated.&lt;/p&gt;

&lt;p&gt;They can provide a better balance between security and user experience.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Shorter exposure for access tokens&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Access tokens can have short lifetimes.&lt;/p&gt;

&lt;p&gt;This reduces the period during which a stolen access token remains usable.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Better user experience&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Users don't have to repeatedly enter their passwords.&lt;/p&gt;

&lt;p&gt;They can remain signed in while the application silently obtains new access tokens.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Better session control&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A properly designed refresh-token system can allow the server to revoke sessions.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;User clicks "Log out from all devices"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         ↓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Server invalidates refresh tokens&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         ↓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Existing sessions can no longer&lt;br&gt;
refresh themselves&lt;/p&gt;

&lt;p&gt;This is much more useful than simply waiting for a long-lived token to expire.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Device/session management&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A website can maintain separate sessions for different devices.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Chrome - Malaysia&lt;br&gt;
iPhone - Malaysia&lt;br&gt;
Laptop - Bangladesh&lt;/p&gt;

&lt;p&gt;Each session can have its own refresh token.&lt;/p&gt;

&lt;p&gt;If one device is lost, its session can be revoked without necessarily logging the user out everywhere.&lt;/p&gt;

&lt;p&gt;Access Token vs Refresh Token&lt;br&gt;
Feature Access Token    Refresh Token&lt;br&gt;
Main purpose    Access APIs Obtain new access tokens&lt;br&gt;
Lifetime    Short   Longer&lt;br&gt;
Sent with API requests  Usually yes Usually no&lt;br&gt;
Security sensitivity    High    Very high&lt;br&gt;
Can be revoked server-side  Depends on design   Commonly&lt;br&gt;
Should be exposed to JavaScript Minimize exposure   Prefer HttpOnly cookie&lt;/p&gt;

&lt;p&gt;The exact implementation depends on the application's architecture and threat model.&lt;/p&gt;

&lt;p&gt;Important Security Practices&lt;/p&gt;

&lt;p&gt;JWT itself doesn't automatically make an authentication system secure.&lt;/p&gt;

&lt;p&gt;The implementation matters.&lt;/p&gt;

&lt;p&gt;Use HTTPS&lt;/p&gt;

&lt;p&gt;Never send authentication credentials or tokens over an unencrypted HTTP connection.&lt;/p&gt;

&lt;p&gt;Use HTTPS/TLS in production.&lt;/p&gt;

&lt;p&gt;Keep access tokens short-lived&lt;/p&gt;

&lt;p&gt;Don't make an access token valid for an unnecessarily long period.&lt;/p&gt;

&lt;p&gt;A short lifetime limits the damage from token theft.&lt;/p&gt;

&lt;p&gt;Protect refresh tokens&lt;/p&gt;

&lt;p&gt;For browser-based applications, an HttpOnly + Secure cookie is commonly used.&lt;/p&gt;

&lt;p&gt;HttpOnly helps prevent JavaScript from directly reading the cookie.&lt;/p&gt;

&lt;p&gt;Secure ensures the cookie is sent only over HTTPS.&lt;/p&gt;

&lt;p&gt;Depending on the application, SameSite settings should also be configured appropriately.&lt;/p&gt;

&lt;p&gt;Consider refresh-token rotation&lt;/p&gt;

&lt;p&gt;Instead of reusing the exact same refresh token forever, the server can issue a new refresh token whenever one is successfully used.&lt;/p&gt;

&lt;p&gt;The previous token can then be invalidated.&lt;/p&gt;

&lt;p&gt;This is known as refresh-token rotation.&lt;/p&gt;

&lt;p&gt;It can help detect and limit certain replay attacks.&lt;/p&gt;

&lt;p&gt;Never store passwords inside JWTs&lt;/p&gt;

&lt;p&gt;A JWT should never contain the user's password.&lt;/p&gt;

&lt;p&gt;Passwords should be stored using an appropriate password hashing algorithm such as Argon2id or bcrypt.&lt;/p&gt;

&lt;p&gt;Validate tokens properly&lt;/p&gt;

&lt;p&gt;The server should verify important JWT properties such as:&lt;/p&gt;

&lt;p&gt;Signature&lt;br&gt;
Expiration&lt;br&gt;
Issuer&lt;br&gt;
Audience&lt;br&gt;
Algorithm&lt;/p&gt;

&lt;p&gt;The exact checks depend on the authentication architecture.&lt;/p&gt;

&lt;p&gt;What Happens When a User Logs Out?&lt;/p&gt;

&lt;p&gt;A common mistake is thinking:&lt;/p&gt;

&lt;p&gt;"Deleting the JWT from the browser means the session is completely gone."&lt;/p&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;If a refresh token remains valid on the server, it may still be possible to create another access token.&lt;/p&gt;

&lt;p&gt;A stronger logout design can invalidate the user's refresh session.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Logout&lt;br&gt;
  ↓&lt;br&gt;
Delete/clear client session&lt;br&gt;
  ↓&lt;br&gt;
Revoke refresh token&lt;br&gt;
  ↓&lt;br&gt;
Future refresh attempts fail&lt;/p&gt;

&lt;p&gt;This gives the server more control over active sessions.&lt;/p&gt;

&lt;p&gt;JWT Is Not a Complete Authentication System&lt;/p&gt;

&lt;p&gt;This is probably the most important point.&lt;/p&gt;

&lt;p&gt;JWT is simply a token format.&lt;/p&gt;

&lt;p&gt;Using JWT doesn't automatically mean an application has secure authentication.&lt;/p&gt;

&lt;p&gt;A secure authentication system also needs to consider:&lt;/p&gt;

&lt;p&gt;Password hashing&lt;br&gt;
HTTPS&lt;br&gt;
Token expiration&lt;br&gt;
Secure cookie configuration&lt;br&gt;
CSRF protection where applicable&lt;br&gt;
XSS protection&lt;br&gt;
Refresh-token rotation&lt;br&gt;
Session revocation&lt;br&gt;
Rate limiting&lt;br&gt;
Account recovery&lt;br&gt;
Multi-factor authentication&lt;br&gt;
Proper server-side authorization&lt;/p&gt;

&lt;p&gt;JWT is one part of the system, not the entire system.&lt;/p&gt;

&lt;p&gt;A Simple Mental Model&lt;/p&gt;

&lt;p&gt;I like to think about it this way:&lt;/p&gt;

&lt;p&gt;Access token = temporary access pass&lt;/p&gt;

&lt;p&gt;Refresh token = credential used to obtain another temporary pass&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;LOGIN&lt;br&gt;
  ↓&lt;br&gt;
Access Token ──────────→ API&lt;br&gt;
  │&lt;br&gt;
  │ expires&lt;br&gt;
  ↓&lt;br&gt;
Refresh Token&lt;br&gt;
  │&lt;br&gt;
  ↓&lt;br&gt;
New Access Token&lt;br&gt;
  │&lt;br&gt;
  ↓&lt;br&gt;
API&lt;/p&gt;

&lt;p&gt;The user experiences one continuous session, while the application can keep the actual API credential short-lived.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;When building a modern application, authentication is not just about making the login button work.&lt;/p&gt;

&lt;p&gt;It's about deciding:&lt;/p&gt;

&lt;p&gt;How long should a session last?&lt;/p&gt;

&lt;p&gt;What happens if a token is stolen?&lt;/p&gt;

&lt;p&gt;How can a user stay logged in without keeping a powerful credential valid forever?&lt;/p&gt;

&lt;p&gt;Refresh tokens provide one way to solve this problem.&lt;/p&gt;

&lt;p&gt;Used correctly, the combination of short-lived access tokens + carefully protected refresh tokens + proper session management can give developers a practical balance between security and user experience.&lt;/p&gt;

&lt;p&gt;But the important part is not simply adding JWT.&lt;/p&gt;

&lt;p&gt;The real security comes from designing the entire authentication flow carefully.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8eur7b24bzx6o5oc2xlo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8eur7b24bzx6o5oc2xlo.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>webdev</category>
      <category>programming</category>
      <category>jwt</category>
    </item>
    <item>
      <title>So what should it be – WordPress or custom code? 19 questions every business owner needs to answer - The truth.</title>
      <dc:creator>Ehan Siddique</dc:creator>
      <pubDate>Thu, 20 Aug 2026 17:09:36 +0000</pubDate>
      <link>https://dev.to/ehan_siddique/so-what-should-it-be-wordpress-or-custom-code-19-questions-every-business-owner-needs-to-answer-2edd</link>
      <guid>https://dev.to/ehan_siddique/so-what-should-it-be-wordpress-or-custom-code-19-questions-every-business-owner-needs-to-answer-2edd</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2vstps48rhwzodgcev8z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2vstps48rhwzodgcev8z.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;em&gt;“WordPress or custom coded?”&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
It is amongst the most recurrent queries businessmen usually ask while launching a new web page.&lt;/p&gt;

&lt;p&gt;Plus, everyone will most likely say something completely different.&lt;/p&gt;

&lt;p&gt;Some will tell you:&lt;/p&gt;

&lt;p&gt;“WordPress is BASIC and OLD.”&lt;/p&gt;

&lt;p&gt;Others will say:&lt;/p&gt;

&lt;p&gt;“No, it is not necessary to make custom development – you can use WordPress.”&lt;/p&gt;

&lt;p&gt;The reality is, however, that:&lt;/p&gt;

&lt;p&gt;There is no right or wrong answer.&lt;/p&gt;

&lt;p&gt;This will entirely rely on your business, objectives, budget and the true scope of functionality that you need your website to have.&lt;/p&gt;

&lt;p&gt;What once started out as a “cheap website” is now considered by many as the most powerful blogging platform available online.&lt;/p&gt;

&lt;p&gt;WordPress is not so easy to comprehend as people perceive it.&lt;/p&gt;

&lt;p&gt;Yes, it can (affordably) be used to create web sites rapidly. Doesn't imply it implies that WordPress sites are low quality though.&lt;/p&gt;

&lt;p&gt;The best-developed WordPress website can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fast&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO-friendly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile-friendly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy to manage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Highly customizable&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WordPress can be a great option for businesses because of its properties, such as a company website, portfolio, blog, landing page or online shop.&lt;/p&gt;

&lt;p&gt;Its great benefit is content management.&lt;/p&gt;

&lt;p&gt;Update pages, publish blogs, add products, change images and manage content without having to rely on a developer for each and every little bit of change.&lt;/p&gt;

&lt;p&gt;That is very spacious to lots of businesses.&lt;/p&gt;

&lt;p&gt;But what about web sites that are programmed in a custom code?&lt;/p&gt;

&lt;p&gt;With custom development, the web or app will have a great deal of control over the websites or apps operation.&lt;/p&gt;

&lt;p&gt;You don't have to conform to a pre-existing CMS and plugin community - instead, its own system can be tailored to suit your business.&lt;/p&gt;

&lt;p&gt;This comes in handy when creating something more elaborate like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SaaS platforms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marketplaces&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customer portals&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advanced dashboards&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Booking platforms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complex business systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-time applications&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Standard WordPress tools may not work efficiently to suit unique functionality or workflow that your website has; in such instances, custom development may prove a better option.&lt;/p&gt;

&lt;p&gt;What About Which one is Better?&lt;/p&gt;

&lt;p&gt;There is the response that not many engineers don't want to have:&lt;/p&gt;

&lt;p&gt;It depends.&lt;/p&gt;

&lt;p&gt;With a website that needs a menu, location, contact info and restaurant bookings and has a blog, an expensive fully bespoke website may not be a feasible option for the restaurant owner.&lt;/p&gt;

&lt;p&gt;WordPress can provide you with all you require.&lt;/p&gt;

&lt;p&gt;However, in the case of an application that lots of users will be using each of whom will be creating accounts and developing business logic, managing dashboards and transactions, and interacting with other accounts, custom development might be the more intelligent option.&lt;/p&gt;

&lt;p&gt;The object is NOT to pick a new high tech solution.&lt;/p&gt;

&lt;p&gt;The objective is to select the technology that will be able to effectively solve your company's problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3 Biggest Myths
&lt;/h2&gt;

&lt;p&gt;The fact that WordPress does not have good reputation for its performance.“WordPress is always slow.”&lt;/p&gt;

&lt;p&gt;Not true.&lt;/p&gt;

&lt;p&gt;Just as a poorly-constructed custom site can be slow, so, too, can a poorly-constructed WordPress site.&lt;/p&gt;

&lt;p&gt;Things like hosting, image optimization, code quality, database configuration, plugins and caching, and third-party scripts, are among the factors that impact performance.&lt;/p&gt;

&lt;p&gt;The most important thing to understand, and doing so will help your decision, is that “WordPress” or “custom” are not the things that matter most, GOOD DEVELOPMENT does.&lt;/p&gt;

&lt;p&gt;“The second myth is that ‘Custom code is always more secure'”.&lt;/p&gt;

&lt;p&gt;Not automatically.&lt;/p&gt;

&lt;p&gt;Even with custom applications, these can be vulnerable to security issues if not managed properly – including authentication, API, database, permissions and/or dependencies.&lt;/p&gt;

&lt;p&gt;Proper updating, secure plugins, robust authentication, backups and monitoring are also required for WordPress.&lt;/p&gt;

&lt;p&gt;Security is not simply a choice of technology, it is a part of development and maintenance.&lt;/p&gt;

&lt;p&gt;Myth #3: “Custom code is always more professional.”&lt;/p&gt;

&lt;p&gt;However, a custom-coded site does not necessarily mean that it is better and, therefore, worth the time or money.&lt;/p&gt;

&lt;p&gt;Use of WordPress isn't a compromise if it's getting the job done in solving your business needs.&lt;/p&gt;

&lt;p&gt;Indeed, it isn't necessarily the more complex option if it achieves what you're after which is more professional.&lt;/p&gt;

&lt;p&gt;People often focus just on the up-front development charges and not what the long-term consequences are.&lt;/p&gt;

&lt;p&gt;The first error done by business entities is their taking just the starting price.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;WordPress: Lower up-front development expenses.&lt;/p&gt;

&lt;p&gt;Complexity: Custom means that more money will be required for the initial development.&lt;/p&gt;

&lt;p&gt;However, there's more to that.&lt;/p&gt;

&lt;p&gt;If that's the case, you must factor in also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hosting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintenance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future features&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer support&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A website that is continually needing repairs and is cheap isn't necessarily cheap.&lt;/p&gt;

&lt;p&gt;You don't want to have a costly custom-built system with components that you never utilize either.&lt;/p&gt;

&lt;p&gt;Consider lifetime costs, rather than just development costs.&lt;/p&gt;

&lt;p&gt;What should your company opt for?&lt;/p&gt;

&lt;p&gt;If you are in need of, WordPress might be better suited for you:&lt;/p&gt;

&lt;p&gt;✅ A company website&lt;/p&gt;

&lt;p&gt;✅ A portfolio&lt;/p&gt;

&lt;p&gt;✅ A blog&lt;/p&gt;

&lt;p&gt;✅ A landing page&lt;/p&gt;

&lt;p&gt;A website that's based on providing a service.&lt;/p&gt;

&lt;p&gt;Online shop – with small to medium size clientele – = ✅&lt;/p&gt;

&lt;p&gt;✅ Easy content management&lt;/p&gt;

&lt;p&gt;🏃 A fast start, in comparison to the other projects.&lt;/p&gt;

&lt;p&gt;If you need things such as: then it may be better to opt for tailor-made development:&lt;/p&gt;

&lt;p&gt;✅ A SaaS product&lt;/p&gt;

&lt;p&gt;✅ A complex marketplace&lt;/p&gt;

&lt;p&gt;✅ Advanced dashboards&lt;/p&gt;

&lt;p&gt;✅ Unique business workflows&lt;/p&gt;

&lt;p&gt;✅ Complex integrations&lt;/p&gt;

&lt;p&gt;✅ Real-time functionality&lt;/p&gt;

&lt;p&gt;✅ Positive use cases to showcase the fit with the operation or industry of your interest&lt;/p&gt;

&lt;p&gt;✅ A system in need of a full system control with the architecture.&lt;/p&gt;

&lt;p&gt;Occasionally you may be able to select more than one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hybrid Approach
&lt;/h2&gt;

&lt;p&gt;It's one of the elements that many businesses might not have considered.&lt;/p&gt;

&lt;p&gt;You can also utilize WordPress for your marketing site and website and use a customized made application for complicated features.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;yourbusiness.com → WordPress&lt;/p&gt;

&lt;p&gt;app.yourbusiness.com → Custom application&lt;/p&gt;

&lt;p&gt;This helps marketers quickly make changes to the website content and the development team to create website-specific functions.&lt;/p&gt;

&lt;p&gt;At times, this is the most convenient alternative.&lt;/p&gt;

&lt;p&gt;In this video, you'll learn the questions you need to ask before hiring a developer.This video is about the questions you should ask prior to hiring a developer.&lt;/p&gt;

&lt;p&gt;Avoid beginning with questions:&lt;/p&gt;

&lt;p&gt;“Let's figure out is it better to use WordPress or to pay attention to custom code?”&lt;/p&gt;

&lt;p&gt;Decide upon the following question starters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What are the requirements of my business?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Avoid paying for features that you don't need to use.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Who will handle maintenance of the Web site?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When frequent updates to content are a regular occurrence for your team, ease-of-management is key.&lt;/p&gt;

&lt;p&gt;**3. What is the anticipated increase in the size of the business?&lt;/p&gt;

&lt;p&gt;The technology you select is for the future, so your future needs should be taken into consideration.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What are maintenance fees going to be? &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inquire about updates, hosting, security and backups and ongoing support.&lt;/p&gt;

&lt;h1&gt;
  
  
  5: Does the site have potential to expand as my company expands?
&lt;/h1&gt;

&lt;p&gt;You shouldn't be stuck with a website that will not do the job when your enterprise grows.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;“WordPress isn't necessarily bad.”&lt;/p&gt;

&lt;p&gt;This doesn't mean that custom code has to be better.&lt;/p&gt;

&lt;p&gt;Especially, because the most costly web page does not always necessarily mean the best!&lt;/p&gt;

&lt;p&gt;The top Web page will be the one that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Helps to solve your business problem&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provides a nice customer experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performs reliably&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does not need extensive cleaning up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can be adapted to suit a business's needs and scale of operations as it grows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fits your budget&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore, before selecting any technology know what your business needs are.&lt;/p&gt;

&lt;p&gt;Do not create an internet site due to the fact that a developer claims the site is “better” doing his or her intervention.&lt;/p&gt;

&lt;p&gt;Create a website for your business that it really requires.&lt;/p&gt;




&lt;p&gt;Would you opt for WordPress, or is it completely developed? Or is it a mix of the two?&lt;/p&gt;

&lt;p&gt;If you have any comments feel free to write me.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>fullstack</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
